// #include "head.h"

// // // 定义函数：创建9个不同颜色的网格状对象
// // void obj_pos(void)
// // {
// //     // 获取当前活动屏幕对象
// //     lv_obj_t *screen = lv_scr_act();

// //     // 定义颜色数组，包含9种不同的LVGL调色板颜色
// //     lv_palette_t colors[]={LV_PALETTE_RED,
// //                         LV_PALETTE_PINK,
// //                         LV_PALETTE_PURPLE,
// //                         LV_PALETTE_DEEP_PURPLE,
// //                         LV_PALETTE_INDIGO,
// //                         LV_PALETTE_BLUE,
// //                         LV_PALETTE_LIGHT_BLUE,
// //                         LV_PALETTE_CYAN,
// //                         LV_PALETTE_TEAL};

// //     // 定义对象数组，用于存储9个对象
// //     lv_obj_t *obj[9];
// //     // 循环创建9个对象并设置属性
// //     for(int i=0;i<9;i++)
// //     {
// //         // 在屏幕上创建对象
// //         obj[i] = lv_obj_create(screen);
// //         // 设置对象尺寸为屏幕的1/3（宽800/3，高480/3）
// //         lv_obj_set_size(obj[i], 800/3, 480/3);
// //         // 设置对象位置，形成3x3网格布局
// //         // 列位置：i%3计算列索引，乘以宽度得到X坐标
// //         // 行位置：i/3计算行索引，乘以高度得到Y坐标
// //         lv_obj_set_pos(obj[i], 800/3*(i%3), 480/3*(i/3));
// //         // 设置对象背景色为颜色数组中对应索引的颜色
// //         lv_obj_set_style_bg_color(obj[i], lv_palette_main(colors[i]), 0);
// //     }
    
// // }

// // // 定义函数：创建带有特定样式的对象（样式1）
// // void obj_style1(void)
// // {
// //     // 初始化样式对象（静态变量确保样式不会被重复初始化）
// //     static lv_style_t style;
// //     lv_style_init(&style);

// //     // 设置样式属性：
// //     // 1. 圆角半径为5
// //     lv_style_set_radius(&style, 5);
// //     // 2. 背景不透明度为完全不透明
// //     lv_style_set_bg_opa(&style, LV_OPA_COVER);
// //     // 3. 背景色为浅黄色（在黄色基础上提亮1级）
// //     lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_YELLOW,1));
// //     // 4. 阴影宽度为55
// //     lv_style_set_shadow_width(&style, 55);
// //     // 5. 阴影颜色为蓝色
// //     lv_style_set_shadow_color(&style,lv_palette_main(LV_PALETTE_BLUE));

// //     // 在当前屏幕创建对象
// //     lv_obj_t* obj = lv_obj_create(lv_scr_act());
// //     // 为对象添加定义的样式
// //     lv_obj_add_style(obj, &style, 0);
// //     // 将对象对齐到屏幕中心
// //     lv_obj_align(obj,LV_ALIGN_CENTER, 0, 0);
// // }


// // // 定义函数：创建基础样式和警告样式（样式2）
// // // 功能：演示如何创建基础样式及其变体（警告样式），并将样式应用到对象上
// // // 说明：通过组合基础样式和警告样式，实现样式的复用与扩展
// // void obj_style2(void)
// // {
// //     // 初始化基础样式（静态变量确保样式仅初始化一次）
// //     static lv_style_t style_base;
// //     lv_style_init(&style_base);

// //     // 设置基础样式属性：
// //     // 1. 背景色为亮蓝色
// //     lv_style_set_bg_color(&style_base, lv_palette_main(LV_PALETTE_LIGHT_BLUE));
// //     // 2. 边框色为亮蓝色的深色版本（加深3级）
// //     lv_style_set_border_color(&style_base, lv_palette_darken(LV_PALETTE_LIGHT_BLUE, 3));
// //     // 3. 边框宽度为2像素
// //     lv_style_set_border_width(&style_base, 2);
// //     // 4. 圆角半径为10像素
// //     lv_style_set_radius(&style_base, 10);
// //     // 5. 阴影宽度为10像素（阴影扩散范围）
// //     lv_style_set_shadow_width(&style_base, 10);
// //     // 6. 阴影Y轴偏移量为5像素（阴影向下偏移5px）
// //     lv_style_set_shadow_ofs_y(&style_base, 5);
// //     // 7. 阴影不透明度为50%（半透明）
// //     lv_style_set_shadow_opa(&style_base, LV_OPA_50);
// //     // 8. 文本颜色为白色
// //     lv_style_set_text_color(&style_base, lv_color_white());
// //     // 9. 宽度固定为100像素
// //     lv_style_set_width(&style_base, 100);
// //     // 10. 高度自适应内容（根据内部元素自动调整高度）
// //     lv_style_set_height(&style_base, LV_SIZE_CONTENT);

// //     // 初始化警告样式（静态变量，基于基础样式的变体）
// //     static lv_style_t style_warning;
// //     lv_style_init(&style_warning);

// //     // 设置警告样式的属性（仅覆盖与基础样式不同的部分）：
// //     // 1. 背景色改为黄色
// //     lv_style_set_bg_color(&style_warning, lv_palette_main(LV_PALETTE_YELLOW));
// //     // 2. 边框色改为黄色的深色版本（加深3级）
// //     lv_style_set_border_color(&style_warning, lv_palette_darken(LV_PALETTE_YELLOW, 3));
// //     // 3. 文本颜色改为黄色的深色版本（加深4级，确保与背景对比明显）
// //     lv_style_set_text_color(&style_warning, lv_palette_darken(LV_PALETTE_YELLOW, 4));
    
// //     // 创建应用基础样式的对象
// //     lv_obj_t *obj_base = lv_obj_create(lv_scr_act());
// //     // 为对象添加基础样式
// //     lv_obj_add_style(obj_base, &style_base, 0);
// //     // 将对象对齐到屏幕左中部，向右偏移20像素
// //     lv_obj_align(obj_base, LV_ALIGN_LEFT_MID, 20, 0);

// //     // 在基础样式对象内创建标签
// //     lv_obj_t * label= lv_label_create(obj_base);
// //     // 设置标签文本为"Base"
// //     lv_label_set_text(label, "Base");
// //     // 将标签在父对象内居中显示
// //     lv_obj_center(label);

// //     // 创建应用组合样式（基础样式+警告样式）的对象
// //     lv_obj_t *obj_warning = lv_obj_create(lv_scr_act());
// //     // 先添加基础样式（作为基础）
// //     lv_obj_add_style(obj_warning, &style_base, 0);
// //     // 再添加警告样式（覆盖基础样式中冲突的属性）
// //     lv_obj_add_style(obj_warning, &style_warning, 0);
// //     // 将对象对齐到屏幕右中部，向左偏移20像素
// //     lv_obj_align(obj_warning, LV_ALIGN_RIGHT_MID, -20, 0);

// //     // 在警告样式对象内创建标签
// //     label = lv_label_create(obj_warning);
// //     // 设置标签文本为"Warning"
// //     lv_label_set_text(label, "Warning");
// //     // 将标签在父对象内居中显示
// //     lv_obj_center(label);
// // }

// // // 定义函数：创建带有过渡动画效果的样式（样式3）
// // // 功能：演示如何通过样式过渡实现状态变化时的平滑动画效果
// // // 说明：当对象处于按压状态时，背景色、边框色和边框宽度会通过过渡动画平滑变化
// // void obj_style3(void)
// // {
// //     // 定义过渡动画中需要修改的样式属性数组
// //     // 包含：背景色、边框色、边框宽度三个属性
// //     static lv_style_prop_t props[] = {LV_STYLE_BG_COLOR, LV_STYLE_BORDER_COLOR, LV_STYLE_BORDER_WIDTH};

// //     // 定义默认状态的过渡描述符（trans_def）
// //     static lv_style_transition_dsc_t trans_def;
// //     // 初始化过渡描述符：
// //     // - 关联需要过渡的属性（props数组）
// //     // - 使用线性动画路径（lv_anim_path_linear）
// //     // - 过渡持续时间100毫秒
// //     // - 过渡延迟时间200毫秒（状态变化后等待200ms再开始动画）
// //     // - 无回调函数（NULL）
// //     lv_style_transition_dsc_init(&trans_def, props, lv_anim_path_linear, 100, 200, NULL);

// //     // 定义按压状态的过渡描述符（trans_pr）
// //     static lv_style_transition_dsc_t trans_pr;
// //     // 初始化过渡描述符：
// //     // - 关联相同的过渡属性（props数组）
// //     // - 使用线性动画路径
// //     // - 过渡持续时间500毫秒（比默认状态更长，动画更慢）
// //     // - 无延迟时间（状态变化后立即开始动画）
// //     // - 无回调函数
// //     lv_style_transition_dsc_init(&trans_pr, props, lv_anim_path_linear, 500, 0, NULL);

// //     // 定义默认状态样式（未按压时）
// //     static lv_style_t style_def;
// //     lv_style_init(&style_def);
// //     // 为默认样式设置过渡描述符（trans_def）
// //     lv_style_set_transition(&style_def, &trans_def);

// //     // 定义按压状态样式（LV_STATE_PRESSED）
// //     static lv_style_t style_pr;
// //     lv_style_init(&style_pr); 
// //     // 按压时的背景色设置为红色
// //     lv_style_set_bg_color(&style_pr, lv_palette_main(LV_PALETTE_RED));
// //     // 按压时的边框宽度设置为6像素
// //     lv_style_set_border_width(&style_pr, 6);
// //     // 按压时的边框色设置为深红色（红色加深3级）
// //     lv_style_set_border_color(&style_pr, lv_palette_darken(LV_PALETTE_RED, 3));
// //     // 为按压样式设置过渡描述符（trans_pr）
// //     lv_style_set_transition(&style_pr, &trans_pr);   

// //     // 创建对象并应用样式
// //     lv_obj_t* obj = lv_obj_create(lv_scr_act());
// //     // 添加默认样式（无状态时生效）
// //     lv_obj_add_style(obj, &style_def, 0);
// //     // 添加按压状态样式（仅在对象被按压时生效）
// //     lv_obj_add_style(obj, &style_pr, LV_STATE_PRESSED);

// //     // 将对象对齐到屏幕中心
// //     lv_obj_align(obj, LV_ALIGN_CENTER, 0, 0);
// // }


// // void event_cb(lv_event_t * e)
// // {
// //     LV_LOG_USER("进入了event回调");

// //     lv_obj_t *text = lv_event_get_user_data(e);

// //     lv_obj_t *slider = lv_event_get_target(e);
// //     int32_t value = lv_slider_get_value(slider);

// //     lv_textarea_set_text(text,value);

// //     lv_obj_update_layout(slider);

//     // 设置滑块总宽度
//     // lv_coord_t slider_width = lv_obj_get_width(slider);

//     // //滑块(knob)相对于滑动条最左边的距离
//     // lv_coord_t knob_x =(float)lv_slider_get_value(slider)/lv_slider_get_max_value(slider)*slider_width;

//     // //设置label的x轴
//     // lv_obj_set_x(text, lv_obj_get_x(slider) + knob_x - lv_obj_get_width(text) / 2);

//     // //设置label的y轴
//     // lv_obj_set_y(text,lv_obj_get_y(slider)-20);

    

// }

// void obj_event(void)
// {
//     // lv_obj_t *slider=lv_slider_create(lv_scr_act());
//     // lv_obj_t *label = lv_label_create(lv_scr_act());
    
//     // lv_label_set_text_fmt(label, "%d%%", 0);
//     // lv_obj_set_size(slider, 200, 10);
    
//     // lv_obj_add_event_cb(ui_SliderKP1, event_cb, LV_EVENT_VALUE_CHANGED, ui_TextAreaPressLH2);
//     // lv_obj_add_event_cb(slider, show_jpg, LV_EVENT_VALUE_CHANGED, NULL);
    
//     // lv_obj_align(ui_SliderKP1, LV_ALIGN_CENTER, 0, 0);
//     // lv_obj_align_to(label, slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
   
// }

// void event_cb2(lv_event_t * e)
// {
//     //获得当前触发了该事件的对象
//     lv_obj_t *obj = lv_event_get_target(e);
//     //获得当前事件类型
//     lv_obj_t *cont=lv_event_get_current_target(e);

//     if(obj==cont)
//     {
//         return;
//     }

//     lv_obj_set_style_bg_color(obj,lv_palette_main(LV_PALETTE_RED),0);

// }


// void event_bubble(void)
// {
//     lv_obj_t *container = lv_obj_create(lv_scr_act());
//     lv_obj_add_event_cb(container,event_cb2,LV_EVENT_CLICKED,NULL);

//     lv_obj_align(container, LV_ALIGN_CENTER, 0, 0);
//     lv_obj_set_size(container, 600, 400);

//     lv_obj_t *obj1= lv_obj_create(container);
//     lv_obj_t *obj2=lv_obj_create(container);
//     lv_obj_t *obj3=lv_obj_create(container);
//     lv_obj_t *obj4=lv_obj_create(container);
//     lv_obj_t *obj5=lv_obj_create(container);


//     lv_obj_add_flag(obj1, LV_OBJ_FLAG_EVENT_BUBBLE);
//     lv_obj_add_flag(obj2, LV_OBJ_FLAG_EVENT_BUBBLE);
//     lv_obj_add_flag(obj3, LV_OBJ_FLAG_EVENT_BUBBLE);
//     lv_obj_add_flag(obj4, LV_OBJ_FLAG_EVENT_BUBBLE);
//     lv_obj_add_flag(obj5, LV_OBJ_FLAG_EVENT_BUBBLE);

//     lv_obj_align(obj1, LV_ALIGN_CENTER, 0, 0);
//     lv_obj_align_to(obj2, obj1, LV_ALIGN_LEFT_MID, -50, 0);
//     lv_obj_align_to(obj3, obj1, LV_ALIGN_RIGHT_MID, 50, 0);
//     lv_obj_align_to(obj4, obj1, LV_ALIGN_TOP_MID, 0, -50);
//     lv_obj_align_to(obj5, obj1, LV_ALIGN_BOTTOM_MID, 0, 50);
// }


// // void show_jpg(void)
// // {
// //     // 声明图片数据所在的数组名称
// // LV_IMG_DECLARE(kun);
// // // 创建对象
// // lv_obj_t * img1 = lv_img_create(lv_scr_act());
// // // 加载指定图片
// // lv_img_set_src(img1, &kun);
// // lv_obj_align(img1, LV_ALIGN_CENTER, 0, -20);
// // // 将obj的宽设置为当前screen的100%的宽
// // // 将obj的宽设置为当前screen的100%的高
// // lv_obj_set_size(img1, LV_PCT(50), LV_PCT(120));
// // }

// void show_my_img(void)
// {
//     lv_obj_t * wp;

//     wp = lv_img_create(lv_scr_act());
//     /* Assuming a File system is attached to letter 'A'
//      * E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
//     // lv_img_set_src(wp, "A:../lvgl/examples/libs/sjpg/small_image.sjpg");
//     lv_img_set_src(wp, "A:kun.jpg");
// }

// void show_gif(void)
// {
//     // LV_IMG_DECLARE(img_bulb_gif);
//     lv_obj_t * img;

//     // img = lv_gif_create(lv_scr_act());
//     // lv_gif_set_src(img, &img_bulb_gif);
//     // lv_obj_align(img, LV_ALIGN_LEFT_MID, 20, 0);

//     img = lv_gif_create(lv_scr_act());
//     /* Assuming a File system is attached to letter 'A'
//      * E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
//     // lv_gif_set_src(img, "A:lvgl/examples/libs/gif/bulb.gif");
//     lv_gif_set_src(img, "A:kun.gif");
//     lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
// }

// // void Fonts_example(void)
// // {
// //     // 声明字体
// // LV_FONT_DECLARE(simfang);
// // lv_btn_t * btn = lv_btn_create(lv_scr_act());
// // lv_label_t *label = lv_label_create(btn);
// // lv_label_set_text(label, "取消");
// // // 设置所用字体样式属性
// // lv_obj_set_style_text_font(label, &simfang, LV_PART_MAIN | LV_STATE_DEFAULT);
// // lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0);
// // }

// void click_me(lv_event_t * e)
// {
//     LV_LOG_USER("点击了按钮");
//     static uint32_t count = 0;
//     lv_obj_t *btn = lv_event_get_target(e);
//     lv_obj_t *label = lv_obj_get_child(btn, 0);
//     lv_label_set_text_fmt(label, "%d", ++count);

// }


// void event_click_me(void)
// {
//     lv_obj_t * btn = lv_btn_create(lv_scr_act());

//     lv_obj_set_size(btn,100,50);
//     lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0);

//     lv_obj_add_event_cb(btn,click_me ,LV_EVENT_CLICKED,NULL);

//     lv_obj_t *label =lv_label_create(btn);
//     lv_label_set_text(label,"click me");
//     lv_obj_center(label);
// }